package ljl.alg.wangzheng_camp.round1.array_and_list;

import commons.ListNode;

public class _141_has_cycle {
    
    /**
     * 有个公式
     * 当时为了这个公式还花了我好几个小时才弄明白
     * 这里面还有一些数学
     *
     * 不对，记差了，这个是问你有没有环，不是找到入口
     * 找入口需要一点数学，这个一个快慢指针就搞定了，很简单
     *
     * */
    public boolean hasCycle(ListNode head) {
        ListNode fast = head, slow = head;
        while (fast != null && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
            if (slow == fast) {
                return true;
            }
        }
        return false;
    }
}
